package com.zlm.IO.ByteStream.FileOutputStream;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @author 13026
 */
public class FileOutputStream_demo {
    /*
    * FileOutputStream
    * 字节输出流
    *
    * void write(int b)                   一次写一个字节
    * void write(byte[] b)                一次写一个字节数组
    * void write(byte[] b,int off,int len)一次写一个字节数组的部分数据
    * */
    public static void main(String[] args) throws IOException {
        // 参数可以是字符串表示的路径或者是File对象都是可以的
        // 如果文件不存在会创建一个新的文件，但是要保证父级路径是存在的
        // 如果文件已经存在，会清空文件
        FileOutputStream fos = new FileOutputStream("D:\\myProject\\javaTest\\oneModule\\src\\com\\zlm\\IO\\ByteStream\\FileOutputStream\\FilesPackage\\a.txt");

        // write的参数如果是整数，实际上写出的是整数在ASCII上对应的字符

        // 97对应ASCII是a
        fos.write(97);
        // a b c
        byte[] bytes = {97,98,99};
        fos.write(bytes);
        // b 从1索引，取1个 [a,b,c]
        fos.write(bytes,1,1);

        // 写入字符串，通过getBytes()
        String s = "zlm";
        fos.write(s.getBytes());

        // 换行写
        String wrap = "\r\n";
        fos.write(wrap.getBytes());

        String s2 = "666";
        fos.write(s2.getBytes());

        // 释放资源，解除资源的占用
        fos.close();

        // 续写，第二个参数true
        FileOutputStream fos2 = new FileOutputStream("D:\\myProject\\javaTest\\oneModule\\src\\com\\zlm\\IO\\ByteStream\\FileOutputStream\\FilesPackage\\a.txt",true);
        String s3 = "\r\n888";
        fos2.write(s3.getBytes());
        fos2.close();
    }
}

